﻿using AexoManager.Entidades;
using AutoMapper;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AexoManager.Datos
{
    public static class MappingConfigure
    {
        public static void Inicializar()
        {
            Mapper.CreateMap<List<Empleado>, List<DTOEmpleado>>();
            Mapper.CreateMap<Empleado, DTOEmpleado>();
            Mapper.CreateMap<DTOEmpleado, Empleado>();

            Mapper.CreateMap<List<Proceso>, List<DTOProceso>>();
            Mapper.CreateMap<Proceso, DTOProceso>();
            Mapper.CreateMap<DTOProceso, Proceso>();

            Mapper.CreateMap<List<Parte>, List<DTOParte>>();
            Mapper.CreateMap<Parte, DTOParte>();
            Mapper.CreateMap<DTOParte, Parte>();

            Mapper.CreateMap<List<RegistroProceso>, List<DTORegistroProceso>>();
            Mapper.CreateMap<RegistroProceso, DTORegistroProceso>();
            Mapper.CreateMap<DTORegistroProceso, RegistroProceso>()
                .ForMember(dest => dest.IdParte, opt => opt.MapFrom(src => src.Parte.IdParte))
                .ForMember(dest => dest.Parte, opt => opt.Ignore())
                .ForMember(dest => dest.IdEmpleado, opt => opt.MapFrom(src => src.Empleado.IdEmpleado))
                .ForMember(dest => dest.Empleado, opt => opt.Ignore())
                .ForMember(dest => dest.IdProceso, opt => opt.MapFrom(src => src.Proceso.IdProceso))
                .ForMember(dest => dest.Proceso, opt => opt.Ignore());

            Mapper.CreateMap<List<Maquina>, List<DTOMaquina>>();
            Mapper.CreateMap<Maquina, DTOMaquina>();
            Mapper.CreateMap<DTOMaquina, Maquina>();
        }
    }
}
